Remote mirroring in storage systems is used to replicate logical volumes of a primary (also called ‘local’) storage system to a secondary (also called ‘remote’) storage system. In asynchronous remote mirroring, batches of updates are periodically sent to the remote site. The batches of updates are performed in cycles, wherein in each cycle the local system determines the changes that occurred in the logical volume to be replicated, since the previous cycle and transmits the changes to the remote site.
A snapshots can be taken in the local system upon starting a new cycle and the updates to be transmitted to the remote site in the new cycle are determined by comparing successive snapshots. The local system sequentially transmits all the determined updates to the remote site. Upon completion of the cycle, a snapshot of the mirrored volume is taken at the remote system to reflect a valid replica of the local volume and can be used for restoring a compatible and consistent state of the mirrored volume, in case of a restart after failure of the remote system.
FIG. 1 is a timing diagram that illustrates a sequential process that represents a n'th replication cycle of an asynchronous remote mirroring (denoted “replicating deltas n of a logical volume” 210) and a single replication cycle that involves (i) taking at Tn (200(n)) an n'th point of time snapshot of a logical volume, which represents the state of the logical volume at the n'th point in time (ii) calculating the deltas between the n'th point of time content of the logical volume and the (n−1)'th point in time content of the logical volume. The deltas includes data and metadata (e.g., logical addresses) of the changed areas; and (iii) transmitting these deltas in a sequential manner to a remote site. The process starts at the n'th point in time T(n) 200(n) and ends at the (n+1)'th point in time T(n+1) 200(n+1).
The remote site stores the deltas in a mirrored logical volume and acknowledges the reception of the deltas and the creation of a n'th point in time replicate snapshot of the mirrored logical volume at the remote site. After acknowledging the completion, the next replication cycle can start.
Only if all of the n'th point of time deltas of the entire logical volume are successfully received (and all preceding point of time deltas of the entire logical volume are successfully received) and processed by the remote site, then the n'th point in time content of the logical volume can be reconstructed by the remote site.
There is a growing need to speed up the remote mirroring process.